A robust design for an integrated circuit takes into account a wide range of possible operating conditions, including process variations, operating voltage variations and operating temperatures (“PVT variations”). Such attention is especially required for a signal which timing is tightly constrained (a “timing-constrained signal”; circuits containing such signals are termed “timing-constrained circuits”). Timing-constrained signals include, for example, self-timed signals and racing paths. Self-timed paths are expected to be frequency independent, and all timing constraints on a racing path must be satisfied at all operating conditions. In this regard, racing paths are signal paths that are asynchronous with respect to each other, as to which one or more timing constraints apply. A self-timed path is a signal path in which timing is provided by a locally generated timing signal, rather than by a global clock signal. The timing signal is used, for example, to gate a data signal that is developed concurrently. To achieve that purpose, the timing relationship between the timing signal and the data signal must satisfy some design constraints. The timing signal of a self-timed path may be achieved, for example, by serially connected delay elements (e.g., inverters). As the propagation delays of the delay elements vary with PVT conditions, the timing relationships of data and timing signals may not be able to meet design constraints, resulting in glitches or other functional failures. Generally, at a lower operating voltages, the propagation delay increases.
In the prior art, to ensure that an integrated circuit can reliably operate over the entirety of its expected range of operating voltages, sufficient timing margins are included in the self-timed and racing paths such that the timing requirements are met even in the worst case. As a result, under some operating conditions, the included timing margins become unnecessarily large, thereby resulting in a lower (and possibly unacceptable) performance.
In some designs, for example, the bias voltages that are used to limit the currents in delay elements are selected at the time of manufacturing testing by programming static fuses, so that the delay elements in a timing chain may provide a sufficient delay even in the worst operating condition. In such designs, there is no dynamic flexibility to respond to actual operating conditions.